<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>

</html>

<script>
  /* 英文：
    break - 打断 / 破坏
    default - 默认
  
  */


  /* 一、条件分支 - switch
    语法：
      switch (已存在的变量) {
        case value1:
          
          break;
      
        case value2:
          
          break;
      
        ...
      
        default:
          break;
      }
  
    执行逻辑：
      1）当 已存在的变量 与 某个 value， 全相等（`===`），则执行其 下面的代码，直到遇到 break 位置。
      2）当 已存在的变量 与 任何 value 的值都不相等，则执行 default 下面的代码。

      注：switch 的一个“特性”-「代码穿透」，即 switch 开始执行代码，会一直往下执行，知道 遇到 `break` 才停止。

  */

  var age = 17;

  switch (age) {
    case 19: // 将 19 和 age 进行 `===` 比较，若是 true，则执行 下面的代码，直到遇到 break; 停止
      console.log('19 -----19');


    case 18:
      console.log('18.....');

    case 17:
      console.log('19.....');

    default:
      console.log('默认1');
      console.log('默认2....');
      break;
  }


  /* 二、总结：
    if 和 switch 的区别/比较：

    // 注：if 因为是 表达式，所以其 可以进行 区间判断（如： age > 18 && age < 60）
    if (表达式) {

    }


    // 注：switch 只能进行 `全等判断`
      即 switch 的作用，类比  if (age === xx) {}
  
  
    总结：
      switch 能做的事情，if 几乎都能做。
        除了：`代码穿透` if 不能做。
  */
</script>